﻿/// <summary>
/// Script de controlador del layaut del site.
/// </summary>
/// <remarks>
/// Creacion: 	
/// </remarks>
ns('Pe.Petecos.Comercial.Presentacion.General.Comun.BusquedaOrdenCompraProveedor');
Pe.Petecos.Comercial.Presentacion.General.Comun.BusquedaOrdenCompraProveedor.Controller = function (opts) {
    var base = this;
    base.Ini = function () {
        'use strict'
        base.Event.AgregarSuccess = (opts.AgregarSuccess != null && opts.AgregarSuccess) ? opts.AgregarSuccess : null;
        base.Control.BtnBuscar().click(base.Event.BtnBuscarClick);
        base.Control.BtnAgregar().click(base.Event.BtnAgregarClick);
        base.Function.CrearGrid();

    };

    base.Control = {
        DlgForm: new Pe.GMD.UI.Web.Components.Dialog({
            title: 'Busqueda Ordenes de Compra',
            minHeight: '550px'

        }),
        Mensaje: new Pe.GMD.UI.Web.Components.Message(),
        TxtNombre: function () { return $('#txtBusquedaProveedorNombre'); },
        BtnBuscar: function () { return $('#btnOrdenCompraBuscar'); },
        BtnAgregar: function () { return $('#btnOrdenCompraAgregar'); },

        GrdResultado: null
    };

    base.Event = {
        BtnBuscarClick: function () {
            'use strict'
            var filtro = {
                CodigoEstado: Pe.Petecos.Comercial.Presentacion.Enumerados.EstadoOrdenCompra.Aprobado,
                NombreProveedor: base.Control.TxtNombre().val()
            };

            base.Control.GrdResultado.Load(filtro);
        },
        BtnAgregarClick: function () {
            'use strict'
            var seleccionados = base.Control.GrdResultado.GetSelectedData();
            if (seleccionados.length > 0) {
                if (seleccionados.length == 1) {
                    base.Event.AgregarSuccess(seleccionados);
                    base.Control.DlgForm.close();
                }
                else {
                    base.Control.Mensaje.Warning({ message: 'Debe seleccionar una (1) orden de compra' });
                }
            } else {
                base.Control.Mensaje.Warning({ message: 'Debe seleccionar al menos un registro' });
            }

        }
    };

    //base.Ajax = {
    //};

    base.Function = {
        CrearGrid: function () {
            var columns = new Array();

            columns.push({ data: 'CodigoOrdenCompra', title: 'Codigo OC' });
            columns.push({ data: 'CodigoProyecto', title: 'Codigo Proyecto' });
            columns.push({ data: 'NombreProyecto', title: 'Nombre Proyecto'});
            columns.push({ data: 'TipoDePagoComprobante', title: 'Tipo de Pago' });
            columns.push({ data: 'MontoTotal', title: 'Monto' });      
            columns.push({ data: 'FechaCuotaAtualPorPagarComprobante', title: 'Fecha Pago' });
            columns.push({ data: 'NombreEstado', title: 'Estado' });

            base.Control.GrdResultado = new Pe.GMD.UI.Web.Components.Grid({
                renderTo: 'divGrdBusquedaOrdenPorProveedor',
                lengthMenu: [[10], [10]],
                hasSelectionRows: true,
                columns: columns,
                columnDefs: [{ sWidth: '60px', aTargets: [1] }],
                proxy: {
                    url: Pe.Petecos.Comercial.Presentacion.Ventas.AdministrarOrdenCompra.Actions.Buscar,
                    source: 'Result'
                }
            });

        },
    };

    base.Show = function () {
        base.Control.DlgForm.getAjaxContent(
        {
            action: Pe.Petecos.Comercial.Presentacion.General.Comun.Actions.BusquedaOrdenCompraProveedor,
            onSuccess: function () {
                base.Ini();
            }
        });
    };
};